package com.ruoyi.project.storage.mapper;

import com.ruoyi.project.storage.domain.BoxInfo;
import com.ruoyi.project.storage.domain.vo.BoxInfoVO;
import com.ruoyi.project.storage.domain.vo.BoxStandardVO;

import java.util.List;
import java.util.Map;

/**
 * 箱子信息Mapper接口
 *
 * @author mengyuanqing
 * @date 2020/5/8
 */
public interface BoxInfoMapper {
    /**
     * 批量新增箱子信息
     *
     * @param list 箱子信息列表
     * @return 结果
     */
    int batchInsertBoxInfo(List<BoxInfo> list);

    /**
     * 查看箱子信息
     *
     * @param boxInfoVO 对象
     * @return 列表
     */
    List<BoxInfoVO> selectBoxInfoList(BoxInfoVO boxInfoVO);

    /**
     * 查看当前箱子信息表下的箱子规格
     *
     * @return 结果
     */
    BoxInfoVO selectBoxStandard(BoxInfoVO boxInfoVO);

    /**
     * 插入箱子信息
     *
     * @param boxInfoVO 实体
     * @return 结果
     */
    int insertBoxInfo(BoxInfoVO boxInfoVO);

    /**
     * 查询订单表是否还存在箱子id
     *
     * @param ids id
     * @return 条数
     */
    int selectOrderCountByIds(Long[] ids);

    /**
     * 批量删除箱子信息
     *
     * @param batchUpdateMapByIds 箱子信息id
     * @return 结果
     */
    int deleteBoxInfoByIds(Map<String, Object> batchUpdateMapByIds);

    /**
     * 更新箱子信息表把我当前用户id并且已使用更新上去
     *
     * @param boxInfo 对象
     * @return 结果
     */
    int updateInfoIdVersion(BoxInfo boxInfo);

    /**
     * 查询当前箱子规格对应箱子信息
     *
     * @param boxInfo 对象
     * @return 结果
     */
    List<BoxInfo> selectNowBoxStandardBoxId(BoxInfo boxInfo);

    /**
     * 设置箱子信息表，清空使用人，设置未使用
     *
     * @param boxInfo 对象
     * @return 结果
     */
    int updateBoxId(BoxInfo boxInfo);
}
